package com.hqq.pack1;
//切面类

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

import java.util.Date;

@Aspect
public class MyAspect {

    /**
     * 定义方法：实现切面功能
     */

//    @Before(value = "execution(public void com.hqq.pack1.SomeServiceImpl.doSome(String,Integer))" )
//    public void myBefore(){
//        System.out.println("前置通知===切面功能：在目标方法之前输出执行时间："+new Date());
//    }
    /**
     * 指定通知方法（要切入的目标方法）的参数--使用JoinPoint（连接点）
     * 连接点就是dosome这个函数
     * 当测试时通过代理对象调用该方法时，就会把dosome传给jp
     */
        @Before(value = "execution(public void com.hqq.pack1.SomeServiceImpl.doSome(String,Integer))" )
    public void myBefore(JoinPoint jp){
            System.out.println("方法的签名（定义）="+jp.getSignature());
            System.out.println("方法的名称="+jp.getSignature().getName());
            //获得实参--将参数均放在数组中返回
            Object[] args =jp.getArgs();
            for (Object obj:args){
                System.out.println("参数："+obj);
            }
        System.out.println("前置通知===切面功能：在目标方法之前输出执行时间："+new Date());
    }
}
